import Vue from 'vue'
import axios from 'axios';
import ElementUI from 'element-ui';
import { hc } from '@/tools/HappyCookie.js';
Vue.use(ElementUI);

//添加请求拦截器
axios.interceptors.request.use(function (config) {
  let commonBackKeytoken = Vue.prototype.commonBackKey + 'token';
  let cookieValue = hc.getCookie(commonBackKeytoken);
  if (!config.url.includes('login')) {//非登录页
    if (!cookieValue) {//用户未登录/登录过期
      window.location.assign('/index.html');//页面跳转
    } else {//正常加cookie
      config.headers.Authorization = 'Bearer ' + cookieValue;
    }
  }
  return config;
  // 在发送请求之前做些什么
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response, res) {//200
  // debugger
  return response;
  // 对响应数据做点什么
}, function (error) {//!200
  if (error.response) {
    switch (error.response.status) {
      case 400:
        ElementUI.Notification.error('请求错误(400)');
        break;
      case 401:
        ElementUI.Notification.error('账号名或密码有误(401)');
        break;
      case 403:
        ElementUI.Notification.error('拒绝访问(403)');
        break;
      case 404:
        ElementUI.Notification.error('请求出错(404)');
        break;
      case 408:
        ElementUI.Notification.error('请求超时(408)');
        break;
      case 500:
        ElementUI.Notification.error('服务器错误(500)');
        break;
      case 501:
        ElementUI.Notification.error('服务未实现(501)');
        break;
      case 502:
        ElementUI.Notification.error('网络错误(502)');
        break;
      case 503:
        ElementUI.Notification.error('服务不可用(503)');
        break;
      case 504:
        ElementUI.Notification.error('网络超时(504)');
        break;
      case 505:
        ElementUI.Notification.error('HTTP版本不受支持(505)');
        break;
      default: ElementUI.Notification.error(`连接出错(${error.response.status})!`);
    }
  } else {
    ElementUI.Notification.error('链接失败')
  }

  // 对响应错误做点什么
  return Promise.reject(error);
});




